package com.ruoyi.lxy.service;

import com.ruoyi.lxy.domain.TSelectUser;
import com.ruoyi.lxy.domain.vo.TSelectUserVo;
import com.ruoyi.lxy.domain.bo.TSelectUserBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * 用户选择Service接口
 *
 * @author ruoyi
 * @date 2023-10-09
 */
public interface ITSelectUserService {

    /**
     * 查询用户选择
     */
    TSelectUserVo queryById(Long id);

    /**
     * 查询用户选择列表
     */
    TableDataInfo<TSelectUserVo> queryPageList(TSelectUserBo bo, PageQuery pageQuery);

    /**
     * 查询用户选择列表
     */
    List<TSelectUserVo> queryList(TSelectUserBo bo);

    /**
     * 新增用户选择
     */
    Boolean insertByBo(TSelectUserBo bo);

    /**
     * 修改用户选择
     */
    Boolean updateByBo(TSelectUserBo bo);

    /**
     * 校验并批量删除用户选择信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 重置教职工项目轮数
     */
    Boolean resetSelectUser();

    /**
     * 判断指定路线是否可以选报
     */


    int canSelect(Long userId, Long timeId);


    /**
     * 判断是否已经报名该路线
     */
    Boolean isSelect(Long userId, Long timeId);

    /**
     * 判断能否补贴
     */
    public int canSubsidy(Long userId, Long timeId);

    public boolean canJoin(long userId);

    /*用户退选*/
    public boolean deleteWithValidById(Long userId, Long timeId, Boolean isValid);
}
